const dayjs = require('dayjs');
// 添加引入
// 导入路径辅助模块，避免重复引用
const pathImport = require('../helpers/path_import.js');
const { pageHelper, cloudHelper, pageListener } = pathImport;;
const { logEvent } = require('../../../helpers/log_helper.js');
const { getNetworkStatus, listenNetworkStatus } = require('../../../helpers/network_helper.js');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // ... 保留原有数据 ...
    
    docList: [], // 文档列表
    isLoading: false,
    loadingComplete: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function(options) {
    // 网络检测
    const net = await getNetworkStatus();
    if (!net.isConnected) {
      wx.showToast({ title: '当前无网络，请检查连接', icon: 'none' });
    } else if (net.networkType === '2g') {
      wx.showToast({ title: '当前为2G弱网，体验可能受影响', icon: 'none' });
    }
    listenNetworkStatus((res) => {
      if (!res.isConnected) wx.showToast({ title: '网络已断开', icon: 'none' });
      else if (res.networkType === '2g') wx.showToast({ title: '当前为2G弱网', icon: 'none' });
    });
    logEvent('page_load', { page: 'knowledge_list' });
    // 创建页面监听器
    this.listener = pageListener.createPageListener(this);
    
    // 初始加载数据
    this._loadDocList();
  },
  
  /**
   * 加载文档列表
   */
  async _loadDocList() {
    if (this.data.isLoading) return;
    
    try {
      this.setData({
        isLoading: true
      });
      
      // 加载文档列表
      const result = await cloudHelper.callCloudData('knowledge/list', {
        // 根据需要添加参数
      });
      
      if (result && result.list) {
        // 使用虚拟列表优化
        this.listener.setVirtualList(result.list, {
          listKey: 'docList',
          pageSize: 15,
          renderItem: (item) => {
            // 这里可以对列表项进行预处理
            return {
              ...item,
              timeText: this._formatTime(item.createTime)
            };
          }
        });
        
        this.setData({
          loadingComplete: true
        });
      }
    } catch (err) {
      console.error('获取知识文档列表失败', err);
      this.setData({
        docList: []
      });
    } finally {
      this.setData({
        isLoading: false
      });
    }
  },
  
  /**
   * 格式化时间
   */
  _formatTime(timeStr) {
    if (!timeStr) return '';
    
    const date = dayjs(timeStr);
    return date.format('YYYY-MM-DD');
  },
  
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
    this._loadDocList();
    wx.stopPullDownRefresh();
  },
  
  /**
   * 页面跳转
   */
  url: function(e) {
    pageHelper.url(e, this);
  }
}); 